[ntp:questions] NTP 4.2.5p180 adds IPv6 support on Windows

Dave Hart davehart at gmail.com
Sun May 31 19:05:58 UTC 2009


On Sun, May 31, 2009 at 4:00 PM, Danny Mayer <mayer at ntp.org> wrote:
> The OpenSSL libraries need to exactly match the binaries which build
> against it. Unfortunately, the OpenSSL libraries do not try and keep the
> ordinals the same between releases so you cannot depend on the dll from
> the 0.9.8c release to match that from the 0.9.8d release. For this
> reason I always make the builds copy the dll and install into its own
> directory along with the specific libeay32.dll that it was built with.
> This, among other things, mean that you cannot install the binaries into
> system32, wnich you shouldn't do anyway. This also means that you end up
> with multiple copies of libeay32.dll for various applications that need
> OpenSSL. If the OpenSSL team had created and maintained a .def file with
> ordinals in it, this wouldn't have been a problem but they don't do that.

They must have done something which is really ill-advised and not
default, namely, provided import libraries for their DLLs which link
by ordinal only.  This was common with OS/2 and Win16 NE binaries, but
is very uncommon in Win32.  Typically, imports are done by name.  The
way to avoid string comparisons during DLL loading is to "bind" your
EXEs and DLLs at installation time to the installed system DLLs, which
causes them to already have the correct patches in their IAT (import
address table) for the system DLLs, which are the only ones that vary
from the build environment.  Undoubtedly someone's misguided attempt
at optimization (along with failing to respect the need to then keep
ordinals unchanged between releases, as you note) has resulted in this
pain.  For OpenSSL DLLs, importing by name would make them less
fragile to slightly differing versions and would slow load times only
for those that don't rebind (and even then the extra time is trivial
on modern processors compared to other considerations like I/O speed).

Cheers,
Dave Hart



More information about the questions mailing list