Nicolas Williams
3e74e2e3bb
Fix some DLL hell: use dladdr() to find plugin dir
...
Normally one would dlopen() a shared object's basename, not its absolute
path. However, lib/krb5/plugin.c, in an effort to be zero-conf-ish,
wants to readdir() to find plugins to load, and in the process it ends
up defeating the RTLD's search-the-caller's-rpath.
This commit partially addresses this by allowing the use of $ORIGIN in
plugin_dir values and using them for the default (except on OS X).
This allows multiple Heimdal versions installed on the same host, but
with different plugin ABIs, to co-exist. A step forward for doing make
check on hosts where Heimdal is installed.
For now we hardcode $ORIGIN/../lib/plugin/krb5 (linux, Solaris, *BSD),
or $ORIGIN (Windows; for assemblies objects need to be in the same
directory) and we eval $ORIGIN by using dladdr() (Linux, Solaris) or
GetModuleHandleEx() (Win32, via a dladdr() wrapper in libroken) to find
the path to libkrb5 whose dirname to use as $ORIGIN. For Windows,
because we need the plugins to be in the same directory as libkrb5, we
require a prefix on plugin DLLs ("plugin_krb5_") to distinguish them
from other objects.
We should add a special token to mean "look in $ORIGIN, sure, but
dlopen() the plugin basenames only (so the RTLD can search the rpath)".
2013-09-06 16:51:53 -05:00
..
2012-02-20 19:45:41 +00:00
2010-08-20 13:03:38 -04:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2008-09-13 08:53:55 +00:00
2009-11-24 21:42:02 -08:00
2013-08-19 10:21:23 -04:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2009-08-19 04:04:16 -07:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2011-07-21 11:40:04 -04:00
2009-11-24 21:42:02 -08:00
2013-09-06 16:51:53 -05:00
2013-09-06 16:51:53 -05:00
2009-08-18 13:06:05 +02:00
2011-04-29 20:25:05 -07:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-26 01:57:11 -05:00
2011-05-21 11:57:31 -07:00
2009-11-25 05:14:46 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2011-05-21 11:57:31 -07:00
2010-02-20 14:01:53 -08:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2011-05-21 11:54:27 -07:00
2010-08-20 13:04:06 -04:00
2012-06-07 16:59:01 +01:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2011-05-21 11:57:31 -07:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2010-11-24 09:43:04 +00:00
2009-11-24 21:42:02 -08:00
2010-11-24 15:32:26 -05:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2013-05-01 14:00:31 -07:00
2012-06-07 16:59:01 +01:00
2009-11-25 05:14:46 -08:00
2009-01-25 00:30:37 +00:00
2012-02-20 19:45:41 +00:00
2011-06-14 21:57:34 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-25 05:14:46 -08:00
2009-11-24 21:42:02 -08:00
2010-09-14 08:03:30 -04:00
2010-08-20 13:03:40 -04:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2008-09-13 08:53:55 +00:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2010-11-24 15:32:49 -05:00
2009-11-24 21:42:02 -08:00
2013-07-27 19:13:17 -04:00
2009-11-24 21:42:02 -08:00
2010-08-20 13:09:50 -04:00
2008-09-13 08:53:55 +00:00
2013-08-01 12:39:26 -04:00
2008-09-13 08:53:55 +00:00
2009-11-24 21:42:02 -08:00
2012-02-21 11:17:55 +00:00
2009-11-24 21:42:02 -08:00
2010-09-14 08:03:31 -04:00
2010-09-14 08:03:31 -04:00
2013-06-22 21:17:26 -04:00
2009-01-25 00:30:37 +00:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-01-25 00:30:37 +00:00
2011-05-21 11:57:31 -07:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-04-29 20:25:05 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2010-11-29 09:31:07 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2012-07-01 22:09:31 -04:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2012-02-21 11:17:55 +00:00
2011-09-21 17:38:21 +02:00
2010-06-01 10:46:57 -07:00
2012-02-20 19:45:41 +00:00
2012-02-20 19:45:41 +00:00
2013-08-19 17:22:43 -05:00
2012-06-08 17:57:02 +02:00
2013-07-27 19:13:17 -04:00
2011-04-29 20:37:33 -07:00
2013-05-07 16:47:45 -07:00
2013-05-07 16:47:45 -07:00
2011-09-21 17:34:51 +02:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2010-05-30 12:41:06 -07:00
2009-11-24 21:42:02 -08:00
2010-11-29 13:32:24 -05:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2012-02-20 19:45:41 +00:00
2011-05-21 11:57:31 -07:00
2009-09-07 21:24:36 -07:00
2012-02-16 18:47:58 -06:00
2011-05-21 11:57:31 -07:00
2008-09-13 09:21:03 +00:00
2013-06-22 21:17:20 -04:00
2011-05-21 11:57:31 -07:00
2010-11-25 23:51:42 -05:00
2012-01-17 12:10:14 -06:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2010-06-01 10:25:01 -07:00
2009-11-24 21:42:02 -08:00
2011-06-19 10:28:51 -07:00
2010-09-14 08:03:32 -04:00
2010-09-14 08:03:33 -04:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-04-29 20:25:05 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2012-08-16 15:19:44 -04:00
2012-08-16 15:19:44 -04:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2010-11-25 23:51:42 -05:00
2011-05-21 11:57:31 -07:00
2012-02-20 19:45:41 +00:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2009-01-25 00:30:37 +00:00
2009-01-25 00:30:37 +00:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2011-09-21 17:34:51 +02:00
2011-09-21 17:34:51 +02:00
2009-11-24 21:42:02 -08:00
2011-05-21 11:57:31 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2013-08-19 10:21:23 -04:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2010-05-30 12:41:06 -07:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2009-01-25 00:30:37 +00:00
2009-11-24 21:42:02 -08:00
2009-11-24 21:42:02 -08:00
2012-07-20 09:40:22 -04:00
2012-06-07 16:59:01 +01:00
2009-11-24 21:42:02 -08:00
2008-09-13 09:21:03 +00:00
2009-11-24 21:42:02 -08:00