svn rev #24533: trunk/src/ appl/ ccapi/lib/ ccapi/lib/mac/ ccapi/lib/win/ ccapi/server/win/ ...
Greg Hudson
ghudson at MIT.EDU
Thu Nov 25 18:20:21 EST 2010
On Thu, 2010-11-25 at 16:54 -0500, Jeffrey Altman wrote:
> Also, make sure
> that ordinal numbers are assigned to all functions listed in the .DEF
> file. Functions with unassigned ordinals are alphabetized by name and
> assigned unused ordinal values from lowest to highest. A failure to
> make these changes prevents an application built against version X from
> working with version Y.
While doing this work, I read
http://www.mail-archive.com/kfwdev@mit.edu/msg00118.html and did some
additional research, and I wasn't able to understand the benefit of
static ordinals.
The MSDN documentation I could find
(http://msdn.microsoft.com/en-us/library/hyx1zcd3(v=VS.90).aspx and
http://msdn.microsoft.com/en-us/library/e7tsx612(VS.80).aspx) implies
that applications built against a DLL will link by name rather than by
ordinal if no ordinal is specified. Also, the most recommended way of
exporting symbols from a DLL (using __declspec(dllexport), which we
don't do) doesn't allow you to specify an ordinal.
Moreover, I had no trouble finding examples of well-supported libraries
which don't define static ordinals. The Heimdal Windows build
infrastructure doesn't appear to do it. NSS doesn't do it. If
Wikipedia is correct
(http://en.wikipedia.org/wiki/Dynamic-link_library#Symbol_resolution_and_binding) then the DLLs comprising the win32 API don't generally do it.
I don't want to be obstinate about this point, as they're mostly
harmless, but I would like to understand better.
> I'm not sure what versions of Windows MIT intends to support.
I am guessing the platforms supported by the latest version of the SDK
(7.1).
> The issue that 20277 was intended to address (regardless of whether or
> not the author's code was correct) is still present. The version of
> ntsecapi.h required to produce a correct build needs to be from version
> 6.0 of the SDK or above.
Is this as simple as documenting the required SDK version?
> > * klist -V prints just "Kerberos for Windows", since it has no access
> > to PACKAGE_NAME and PACKAGE_VERSION from autoconf. This should be
> > addressed correctly.
>
> It should print its own file version number from the compiled resource data.
Okay. I'll have to do some additional research to learn how to do that.
> > * krb5, telnet, gssftp, and NIM are removed from the build.
Whoops, that should have started with "krb4". I didn't remove krb5.exe
from the build.
> will these items be removed from the source repository?
I am assuming yes, but I didn't want to do that right away. gssftp is
already unbundled into the krb5-appl repository.
> do we need another cross platform portability library? Heimdal's roken
> is extremely well supported and is license compatible. I recommend you
> import the portions of it that you require as an external third party
> library just as openafs has. See the openafs src/external/heimdal/roken
> directory. The effort required to port it to Windows has already been
> performed.
I will look into that, thanks.
More information about the krbdev
mailing list