diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2006-03-07 20:45:24 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2006-03-07 20:45:24 +0000 |
| commit | 8f09bfe9fa0e51c2bd1e2f533eb25655e88ca43b (patch) | |
| tree | 68c4097fc6650d9d2952fdc0b242263b60ae7f95 /src/config | |
| parent | ca39d95f3cb9681664d3761f4c0c2ec23d36dfd3 (diff) | |
| download | krb5-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/ChangeLog | 15 | ||||
| -rw-r--r-- | src/config/lib.in | 4 | ||||
| -rw-r--r-- | src/config/libnover.in | 4 | ||||
| -rw-r--r-- | src/config/pre.in | 5 | ||||
| -rw-r--r-- | src/config/shlib.conf | 17 |
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*) |
