summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2006-03-07 20:45:24 +0000
committerKen Raeburn <raeburn@mit.edu>2006-03-07 20:45:24 +0000
commit8f09bfe9fa0e51c2bd1e2f533eb25655e88ca43b (patch)
tree68c4097fc6650d9d2952fdc0b242263b60ae7f95 /src/config
parentca39d95f3cb9681664d3761f4c0c2ec23d36dfd3 (diff)
downloadkrb5-8f09bfe9fa0e51c2bd1e2f533eb25655e88ca43b.tar.gz
krb5-8f09bfe9fa0e51c2bd1e2f533eb25655e88ca43b.tar.xz
krb5-8f09bfe9fa0e51c2bd1e2f533eb25655e88ca43b.zip
Merge from plugin branch
Add plugin support: - plugin routines in support library (may break windows build!) - plugin support in KDC location code - sample Python-based plugin for KDC location, not built without tweaking sources - changed service location interface to use an enum instead of passing profile string and DNS strings and port numbers - changed pathnames for plugin locations, including kdb back end - remove locate_service from accessor API Also, do build shared libraries for Darwin just like any other UNIX box. Not present yet: - use new plugin interface for kdb back end - Windows support - Mac bundle support (but dlopen support works) - search path for libkrb5 plugins (only one hard-coded directory for now) - sorting of plugin collections for predictable ordering See the various ChangeLogs for specifics. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17706 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/config')
-rw-r--r--src/config/ChangeLog15
-rw-r--r--src/config/lib.in4
-rw-r--r--src/config/libnover.in4
-rw-r--r--src/config/pre.in5
-rw-r--r--src/config/shlib.conf17
5 files changed, 32 insertions, 13 deletions
diff --git a/src/config/ChangeLog b/src/config/ChangeLog
index f61eef637..ca5704b2a 100644
--- a/src/config/ChangeLog
+++ b/src/config/ChangeLog
@@ -1,3 +1,18 @@
+2006-03-06 Ken Raeburn <raeburn@mit.edu>
+
+ * shlib.conf (*-*-darwin*): Update MAKE_DYNOBJ_COMMAND, LDCOMBINE,
+ and LDCOMBINE_TAIL to create dynamically loadable bundles. Don't
+ set DYNOBJ_EXPDEPS or DYNOBJ_EXPFLAGS. Don't force static-only
+ builds.
+
+ * libnover.in (install-shared): Use MODULE_INSTALL_DIR instead of
+ KRB5_DB_MODULE_DIR.
+
+ * pre.in (MODULE_DIR, KRB5_LIBKRB5_MODULE_DIR): New variables.
+ (KRB5_DB_MODULE_DIR): Define in terms of MODULE_DIR.
+
+ * lib.in (darwin.exports): New target.
+
2006-02-24 Jeffrey Altman <jaltman@mit.edu>
* win-pre.in, win-post.in: support for 64-bit Windows builds
diff --git a/src/config/lib.in b/src/config/lib.in
index 80f7b4182..40c245b08 100644
--- a/src/config/lib.in
+++ b/src/config/lib.in
@@ -59,6 +59,10 @@ binutils.versions: $(SHLIB_EXPORT_FILE) Makefile
echo >> binutils.versions "};"
echo >> binutils.versions "HIDDEN { local: __*; _rest*; _save*; *; };"
+darwin.exports: $(SHLIB_EXPORT_FILE) Makefile
+ sed > darwin-exports.tmp < $(SHLIB_EXPORT_FILE) "s/^/_/"
+ $(MV) darwin-exports.tmp darwin.exports
+
osf1.exports: $(SHLIB_EXPORT_FILE) Makefile
$(RM) osf1.tmp osf1.exports
sed "s/^/-exported_symbol /" < $(SHLIB_EXPORT_FILE) > osf1.tmp
diff --git a/src/config/libnover.in b/src/config/libnover.in
index 3896e8462..09c42dcc8 100644
--- a/src/config/libnover.in
+++ b/src/config/libnover.in
@@ -92,8 +92,8 @@ clean-libs:
install-libs: $(LIBINSTLIST)
install-shared:
- $(RM) $(DESTDIR)$(KRB5_DB_MODULE_DIR)/$(LIBBASE)$(DYNOBJEXT)
- $(INSTALL_SHLIB) $(LIBBASE)$(DYNOBJEXT) $(DESTDIR)$(KRB5_DB_MODULE_DIR)
+ $(RM) $(DESTDIR)$(MODULE_INSTALL_DIR)/$(LIBBASE)$(DYNOBJEXT)
+ $(INSTALL_SHLIB) $(LIBBASE)$(DYNOBJEXT) $(DESTDIR)$(MODULE_INSTALL_DIR)
Makefile: $(SRCTOP)/config/libnover.in
$(thisconfigdir)/config.status: $(SRCTOP)/config/shlib.conf
diff --git a/src/config/pre.in b/src/config/pre.in
index 2dcba6c2c..808b03f59 100644
--- a/src/config/pre.in
+++ b/src/config/pre.in
@@ -205,7 +205,9 @@ FILE_MANDIR = $(KRB5MANROOT)/man5
KRB5_LIBDIR = @libdir@
KRB5_SHLIBDIR = @libdir@$(SHLIB_TAIL_COMP)
KRB5_INCDIR = @includedir@
-KRB5_DB_MODULE_DIR = @libdir@/db-modules
+MODULE_DIR = @libdir@/krb5/plugins
+KRB5_DB_MODULE_DIR = $(MODULE_DIR)/kdb
+KRB5_LIBKRB5_MODULE_DIR = $(MODULE_DIR)/libkrb5
KRB5_INCSUBDIRS = \
$(KRB5_INCDIR)/gssapi \
$(KRB5_INCDIR)/kerberosIV \
@@ -530,6 +532,7 @@ LDCOMBINE=@LDCOMBINE@
# "-h $@", "-h lib$(LIBNAME).$(LIBMAJOR)", etc.
SONAME=@SONAME@
+
#
# rules to make various types of object files
#
diff --git a/src/config/shlib.conf b/src/config/shlib.conf
index a7ec085c3..744d7ea05 100644
--- a/src/config/shlib.conf
+++ b/src/config/shlib.conf
@@ -281,19 +281,16 @@ mips-*-netbsd*)
SHLIBEXT=.dylib
DYNOBJEXT=.so
SHLIB_EXPORT_FILE_DEP=darwin.exports
- DYNOBJ_EXPDEPS='$(DYNOBJ_EXPDEPS_WITH_LOADER)'
- DYNOBJ_EXPFLAGS='$(SHLIB_DIRS) $(DYNOBJ_EXPLIBS_WITH_LOADER)'
- MAKE_DYNOBJ_COMMAND='$(CC) -bundle $(CFLAGS) -bundle_loader $(DYNOBJ_LOADER_PROG) $(LDFLAGS) -o $@ $$objlist $(DYNOBJ_EXPFLAGS) -exported_symbols_list darwin.exports'
- LDCOMBINE='$(CC) -undefined warning -dynamiclib -compatibility_version $(LIBMAJOR) -current_version $(LIBMAJOR).$(LIBMINOR) -install_name "$(KRB5_LIBDIR)/$(LIBPREFIX)$(LIBBASE)$(SHLIBVEXT)" $(CFLAGS) $(LDFLAGS)'
+ MAKE_DYNOBJ_COMMAND='$(CC) -bundle $(CFLAGS) $(LDFLAGS) -o $@ $$objlist $(DYNOBJ_EXPFLAGS) -exported_symbols_list darwin.exports'
+ LDCOMBINE='$(CC) -undefined error -dynamiclib -compatibility_version $(LIBMAJOR) -current_version $(LIBMAJOR).$(LIBMINOR) -install_name "$(KRB5_LIBDIR)/$(LIBPREFIX)$(LIBBASE)$(SHLIBVEXT)" $(CFLAGS) $(LDFLAGS)'
+ # The -dylib_file option tells the linker where to find indirect dependent
+ # libraries, without adding them to the dependency list. We need this because
+ # the direct dependent libraries contain the pathname where the indirect
+ # dependent libraries will be installed (but haven't been yet).
+ LDCOMBINE_TAIL='-dylib_file "$(KRB5_LIBDIR)/libkrb5support.1.0.dylib":$(TOPLIBD)/libkrb5support.1.0.dylib'
CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -dynamic $(CFLAGS) $(LDFLAGS)'
CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) $(CFLAGS) $(LDFLAGS)'
RUN_ENV='DYLD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export DYLD_LIBRARY_PATH;'
- # We need some changes for *all* library builds on Darwin, too.
- # (Well, the KfM builds which generate .dylib files, at least.
- # They might not be needed for "dumb" UNIX builds with static
- # libraries, that just happen to be done on Darwin.)
- enable_static=yes
- enable_shared=no
;;
*-*-solaris*)