Don't #include compile_et .c files
authorSam Hartman <hartmans@mit.edu>
Mon, 12 May 2003 18:04:31 +0000 (18:04 +0000)
committerSam Hartman <hartmans@mit.edu>
Mon, 12 May 2003 18:04:31 +0000 (18:04 +0000)
At least the e2fsprogs compile_et produces .c files that duplicate
definitions found in com_err.h and so you need to avoid including
those .c files in other files.

In order to do this we duplicate the string tables.

Ticket: new
Target_Version: 1.3
Tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15415 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb4/ChangeLog
src/lib/krb4/Makefile.in
src/lib/krb4/configure.in
src/lib/krb4/err_txt.c

index 73e033aa2094a2d1c8e7efa30bf9f8ef3cbb4848..afa3192acc49d653c4e79d4decb10987c15cc9b6 100644 (file)
@@ -1,3 +1,14 @@
+2003-05-11  Sam Hartman  <hartmans@mit.edu>
+
+       * Makefile.in: Build krb_err.c when appropriate.
+
+       * configure.in: Set KRB_ERR to be the object file generated by
+       krb_err.c on non-Darwin
+
+       * err_txt.c :  Don't include krb_err.c on non-Darwin UNIX.  Doing
+       so may break with some compile_et implementations.  Also not
+       included on Windows.
+
 2003-05-01  Alexandra Ellwood  <lxs@mit.edu>
  ÊÊ
     * kadm_stream.c: Fixed vts_long() and vts_short() so they return a
index 0a8ecff3e2f9bb8f356db2512859edbecffdd290..296dd6464cc71ee0a319db98226dbf9858e2c66d 100644 (file)
@@ -29,6 +29,7 @@ SHLIB_DIRS=-L$(TOPLIBD)
 SHLIB_RDIRS=$(KRB5_LIBDIR)
 
 EHDRDIR=$(BUILDTOP)$(S)include$(S)kerberosIV
+KRB_ERR=@KRB_ERR@
 
 OBJS   = \
        $(OUTPRE)change_password.$(OBJEXT) \
@@ -72,7 +73,7 @@ OBJS  = \
        $(OUTPRE)rd_preauth.$(OBJEXT) \
        $(OUTPRE)mk_preauth.$(OBJEXT) \
        $(OSOBJS) $(CACHEOBJS) $(SETENVOBJS) $(STRCASEOBJS) $(SHMOBJS) \
-       $(LIB_KRB_HOSTOBJS) $(SERVER_KRB_OBJS) $(NETIO_OBJS) $(REALMDBOBJS)
+       $(LIB_KRB_HOSTOBJS) $(SERVER_KRB_OBJS) $(NETIO_OBJS) $(REALMDBOBJS) $(KRB_ERR)
 
 SRCS = \
        change_password.c \
index 87aeebccf927fe7e1369f122ea86ab7f0ebc5ceb..8a60058b0bbd8f405a492b9641f9678b377bc296 100644 (file)
@@ -5,12 +5,15 @@ AC_TYPE_UID_T
 case $krb5_cv_host in
      powerpc-apple-darwin*)
      KRB_ERR_TXT=
+     KRB_ERR=
      ;;
      *)
+     KRB_ERR='$(OUTPRE)krb_err.$(OBJEXT)'
      KRB_ERR_TXT=krb_err_txt.c
      ;;
 esac
 AC_SUBST([KRB_ERR_TXT])
+AC_SUBST([KRB_ERR])
 AC_PROG_AWK
 KRB5_BUILD_LIBOBJS
 KRB5_BUILD_LIBRARY_WITH_DEPS
index 9d942a071cd82d60abcf84124a7e3a4dc9c62b5b..a7a290c947a327fddaf76c684ec0bbba4d2d243a 100644 (file)
  * This is gross.  We want krb_err_txt to match the contents of the
  * com_err error table, but the text is static in krb_err.c.  We can't
  * alias it by making a pointer to it, either, so we have to suck in
- * another copy of it that is named differently.  Also, to avoid
- * multiple registrations of the error table, we want to override
- * initialize_krb_error_table() in case someone decides to call it.
- */
+ * another copy of it that is named differently.   */
+#if TARGET_OS_MAC
 #undef initialize_krb_error_table
 #define initialize_krb_error_table     krb4int_init_krb_err_tbl
 void krb4int_init_krb_err_tbl(void);
 #include "krb_err.c"
 #undef initialize_krb_error_table
 
-#if TARGET_OS_MAC
 /*
  * Depends on the name of the static table generated by compile_et,
  * but since this is only on Darwin, where we will always use a
@@ -68,12 +65,6 @@ krb4int_et_init(void)
     inited = 1;\
 }
 
-void
-initialize_krb_error_table(void)
-{
-    krb4int_et_init();
-}
-
 void
 krb4int_et_fini(void)
 {